bc223d5e739dc386abfcde35097ca41c2185b65c,SonicField/src/com/nerdscentral/audio/pitch/SF_TimeDomain.java,SF_TimeDomain,Interpret,#Object#SFPL_Context#,24

Before Change


            re = new double[NFFT];
            im = new double[NFFT];
            int j = 0;
            for (int i = 0; i < NFFT / 2; ++i)
            {
                re[i] = signal.getSample(j++);
                im[i] = signal.getSample(j++);
            }
        }

After Change


        try (SFSignal signal = Caster.makeSFSignal(input))
        {
            int NFFT = signal.getLength();
            try (
                OffHeapArray out = OffHeapArray.doubleArray(NFFT << 1);
                OffHeapArray re = OffHeapArray.doubleArray(NFFT);
                OffHeapArray im = OffHeapArray.doubleArray(NFFT))
            {

                int j = 0;
                for (int i = 0; i < NFFT / 2; ++i)
                {
                    re.setDouble(i, signal.getSample(j++));
                    im.setDouble(i, signal.getSample(j++));
                }
                FFTbase.fft(re, im, out, false);